home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / musictex / older-versions / musictex.507 / MUSICNFT.TEX < prev    next >
Text File  |  1994-10-26  |  35KB  |  936 lines

  1. %
  2. % This is MusicNFT from MusicTeX
  3. \message{Version 5.06 -- October 26th, 1994}%
  4. %
  5. % finding which class of fonts is normally used (cmxxx, dmxxx, dcxxx,...)
  6. \def\wordsplita#1#2#3.XX.{#1}%
  7. \def\wordsplitb#1#2#3.XX.{#2}%
  8. \rm
  9. \edef\fonthdg{\expandafter\wordsplita\fontname\the\font.XX.}%
  10. \edef\fonthdge{\expandafter\wordsplitb\fontname\the\font.XX.}%
  11.  %
  12. \font\cmmi=cmmi10 scaled \magstep1
  13. \font\cmbxbig=\fonthdg\fonthdge bx10 scaled \magstep2
  14. \font\cmbx=\fonthdg\fonthdge bx10 scaled \magstep1
  15. \font\cmbxsmall=\fonthdg\fonthdge bx10 
  16. \font\cmbxtiny=\fonthdg\fonthdge bx8
  17. \font\cmbxmicro=\fonthdg\fonthdge bx7
  18. \font\moyen=\fonthdg\fonthdge bx10 scaled \magstep1
  19. \font\cmex=cmex10
  20. \font\cmsy=cmsy10 scaled \magstep1
  21. \font\cmr=\fonthdg\fonthdge r10 scaled \magstep1
  22. \font\ttyeight=\fonthdg\fonthdge tt8
  23.  
  24.  
  25. \edef\catcodeat{\the\catcode`\@}\catcode`\@=11
  26. \edef\catcode@gt{\the\catcode`\>}\catcode`\>=12
  27. \edef\catcode@lt{\the\catcode`\<}\catcode`\<=12
  28.  
  29. %
  30. \let\@plainwlog=\wlog
  31. \def\wlog#1{}%
  32. %
  33. \font\musictwenty=musikn20
  34. \fontdimen35\musictwenty=0pt\relax
  35. \font\musicsixteen=musikn16
  36. \font\slurntwenty=slurn20
  37. \font\slurnsixteen=slurn16
  38. \font\musicthirteen=musikn13
  39. \font\musiceleven=musikn11
  40. \font\beamtwenty=beamn20
  41. \fontdimen50\beamtwenty=0pt\relax
  42. \font\beamsixteen=beamn16
  43. \font\beamthirteen=beamn13
  44. \font\beameleven=beamn11
  45. %
  46. \newif\ifcautionacc
  47. \cautionaccfalse
  48. %
  49. \def\q@u{\musicnfont\char33\hss}%
  50. \def\h@a{\musicnfont\char34\hss}%
  51. \def\w@h{\musicnfont\char35\hss}%
  52. \def\d@iamg{\musicnfont\char0\hss}%
  53. \def\d@iamw{\musicnfont\char127\hss}%
  54. \def\s@haker{\musicnfont\char79\hss}%
  55. \def\t@remolord{\musicnfont\char78\hss}%
  56. \def\c@arrg{\musicnfont\char1\hss}%
  57. \def\c@arpg{\musicnfont\char2\hss}%
  58. \def\c@arqg{\musicnfont\char3\hss}%
  59. \def\w@hq{\musicnfont\char 125\hss}%
  60. \def\s@bv{\musicnfont\char36\hss}%
  61. \def\b@rv{\musicnfont\char32\hss}%
  62. \def\c@upchar{39}%   offset to upper eighth hook
  63. \def\c@dnchar{44}%   offset to upper eighth hook
  64. %
  65.  %
  66. %
  67. \def\musicxx{\musicnorfont}%
  68. \def\slurnxx{\slurnorfont}%
  69. \def\slurnfont{\slurnorfont}%
  70. %
  71. \def\set@normalnotesize{\def\beamfont{\beamnorfont}%
  72. \def\musicnfont{\musicnorfont}%
  73. \def\i@nterbeam{0.75\Interligne}%
  74. \def\b@alkthick{0.24\Interligne}}
  75. %
  76. \def\set@smallnotesize{\def\beamfont{\beamsmallfont}%
  77. \def\musicnfont{\musicsmallfont}%
  78. \def\i@nterbeam{0.6\Interligne}%
  79. \def\b@alkthick{0.192\Interligne}}
  80. %
  81. \def\set@tinynotesize{\def\beamfont{\beamtinyfont}%
  82. \def\musicnfont{\musictinyfont}%
  83. \def\i@nterbeam{0.48\Interligne}%
  84. \def\b@alkthick{0.1536\Interligne}}
  85. %
  86. \set@normalnotesize
  87. %
  88. \def\qu@raise{\z@}%
  89. \def\ha@raise{\z@}%
  90. \def\wh@raise{\z@}%
  91. \def\zwq#1{\getn@i{#1}\def\n@fon{\zwq}\def\n@sym{\w@hq}\g@zw}%
  92. \def\zsb#1{\getn@i{#1}\def\n@fon{\zsb}\def\n@sym{\s@bv}\g@zsb}% semi-breve
  93. \def\zbv#1{\getn@i{#1}\def\n@fon{\zbv}\def\n@sym{\b@rv}\g@zbv}% breve
  94. \def\g@zbv{\n@raiseq
  95.   \h@lines{\bv@width}\def\s@tem{\resetstem}\plap@symss\fi}%
  96. \def\g@zsb{\n@raiseq
  97.   \h@lines{\sb@width}\def\s@tem{\resetstem}\plap@symss\fi}%
  98. %
  99. \newbox\ch@box
  100. \newdimen\lthick
  101. \global\lthick=0.4pt
  102. %\newdimen\qn@width
  103. %\newdimen\hn@width
  104. %\newdimen\wn@width
  105. %\newdimen\sb@width
  106. %\newdimen\bv@width
  107. \newdimen\qd@skip
  108. \newdimen\hd@skip
  109. \newdimen\wd@skip
  110. %
  111. \newcount\musicsize
  112. %
  113. \def\musickeyfont{\ifdim\internote<0.76\Internote\musictinyfont
  114. \else\ifdim\internote<0.95\Internote\musicsmallfont
  115.      \else\musicnorfont
  116.      \fi
  117. \fi}%
  118. %
  119. \def\meterfont{\ifdim\internote<0.76\Internote\metersmallfont
  120. \else\ifdim\internote<0.95\Internote\meternorfont
  121.      \else\meterbigfont
  122.      \fi
  123. \fi}%
  124. %
  125. \def\pointfont{\ifdim\internote<0.76\Internote\metertinyfont
  126. \else\ifdim\internote<0.95\Internote\metersmallfont
  127.      \else\meternorfont
  128.      \fi
  129. \fi}%
  130. %
  131. \def\computespecifics{\ifnum\musicsize=0\relax\musicsize=20\relax\fi
  132. \ifnum\musicsize=20\relax
  133.   \def\ppff{\ppfftwenty}%
  134.   \def\beamnorfont{\beamtwenty}\def\musicnorfont{\musictwenty}%
  135.   \def\beamsmallfont{\beamsixteen}\def\musicsmallfont{\musicsixteen}%
  136.   \def\beamtinyfont{\beamthirteen}\def\musictinyfont{\musicthirteen}%
  137.   \def\meternorfont{\cmbx}\def\metersmallfont{\cmbxsmall}%
  138.   \def\metertinyfont{\cmbxtiny}\def\slurnorfont{\slurntwenty}%
  139.   \def\meterbigfont{\cmbxbig}%
  140. \else
  141.   \def\ppff{\ppffsixteen}%
  142.   \def\beamnorfont{\beamsixteen}\def\musicnorfont{\musicsixteen}%
  143.   \def\beamsmallfont{\beamthirteen}\def\musicsmallfont{\musicthirteen}%
  144.   \def\beamtinyfont{\beameleven}\def\musictinyfont{\musiceleven}%
  145.   \def\meternorfont{\cmbxsmall}\def\metersmallfont{\cmbxtiny}%
  146.   \def\metertinyfont{\cmbxmicro}\def\slurnorfont{\slurnsixteen}%
  147.   \def\meterbigfont{\cmbx}%
  148. \fi
  149. \Interligne=\musicsize pt\divide\Interligne by 4\relax
  150. \Internote=0.5\Interligne
  151. \interbeam=\i@nterbeam
  152. \setbox\ch@box=\hbox{\w@h}\wn@width=\wd\ch@box
  153. \setbox\ch@box=\hbox{\s@bv}\sb@width=\wd\ch@box
  154. \setbox\ch@box=\hbox{\b@rv}\bv@width=\wd\ch@box
  155. \setbox\ch@box=\hbox{\c@arrg}\gr@width=\wd\ch@box
  156. \setbox\ch@box=\hbox{\h@a}\hn@width=\wd\ch@box
  157. \setbox\ch@box=\hbox{\q@u}\qn@width=\wd\ch@box
  158. \qd@skip=\qn@width\advance\qd@skip by -\hlthick
  159. \hd@skip=\hn@width\advance\hd@skip by -\hlthick
  160. \wd@skip=\wn@width\advance\wd@skip by -\hlthick
  161. }%
  162. \def\normalnotesize{\set@normalnotesize\computespecifics
  163.   \def\currentsize{\normalnotesize}}
  164. \def\smallnotesize{\set@smallnotesize\computespecifics
  165.   \def\currentsize{\smallnotesize}}
  166. \def\tinynotesize{\set@tinynotesize\computespecifics
  167.   \def\currentsize{\tinynotesize}}
  168. %
  169. %\check
  170. %
  171. \def\s@oupir{{\musicnfont\char"3E}}%
  172. %
  173.  %\newdimen\c@height
  174. \newcount\c@mult
  175. %\check
  176. \def\d@cr#1{\c@mult=#1\relax    % queue de #1 croche(s) vers le haut
  177. \advance\c@mult by \c@upchar\d@crg}%
  178. \def\d@gru{\c@mult=12\relax\d@crg}% queue de croche barree vers le haut
  179. \def\d@crg{\setbox\ch@box=\rlap{\musicnfont\char\c@mult}\c@height=\ht\ch@box
  180. \global\advance\st@top by \c@height
  181. \global\advance\st@top by \internote
  182.   \ifdim\st@top>\st@bot
  183.     \maxst@top
  184.     \global\advance\st@bot by -\altportee
  185.     \global\advance\st@top by -\altportee
  186.     \kern\stem@skip\vrule height\st@top depth -\st@bot width \lthick
  187.     \advance\st@top by -\c@height\raise\st@top\box\ch@box
  188.     \kern -\lthick \kern-\stem@skip    
  189.   \fi\resetstem}%
  190. %\check
  191. \def\p@cr#1{\c@mult=#1\relax    % queue de #1 croche(s) vers le bas
  192. \advance\c@mult by \c@dnchar\p@crg}%
  193. \def\p@gru{\c@mult=13\relax\p@crg}% queue de croche barree vers la bas
  194. \def\p@crg{\setbox\ch@box=\rlap{\kern \hlthick\musicnfont
  195.     \char\c@mult}\c@height=\ht\ch@box
  196. \global\advance\st@bot by -\internote
  197. \global\advance\st@bot by -\c@height
  198. \ifdim\st@top>\st@bot
  199.  \minst@bot
  200.  \global\advance\st@bot by -\altportee
  201.  \global\advance\st@top by -\altportee
  202.  \raise\st@bot\box\ch@box
  203.  \vrule height\st@top depth -\st@bot width \lthick
  204.  \kern -\lthick
  205. \fi \resetstem}%
  206. %
  207. % grace notes (croches barrees)
  208. \def\grcu#1{\getn@i{#1}\def\n@sym{\q@u}\def\n@fon{\grcu}\n@raiseq
  209.   \h@linesqn\global\stem@skip=\qd@skip
  210.   \def\s@tem{\d@gru}\pl@symssq\fi}%
  211. \def\grcl#1{\getn@i{#1}\def\n@sym{\q@u}\def\n@fon{\grcl}\n@raiseq    
  212.   \h@linesqn\def\s@tem{\p@gru}\pl@symssq\fi}%
  213. %
  214. %\check
  215. \def\s@harp{\musicnfont\char"34}\def\sh@raise{\z@}%
  216. \def\f@lat{\musicnfont\char"32}\def\fl@raise{\z@}%
  217. \def\n@at{\musicnfont\char"36}\def\na@raise{\z@}%
  218. \def\ds@harp{\musicnfont\char"35}%
  219. \def\df@lat{\musicnfont\char"33}%
  220. %
  221. \def\smalln@at{\cau@left\musicnfont\char"7C\cau@right}%
  222. \def\smallf@lat{\cau@left\musicnfont\char"78\cau@right}%
  223. \def\smalls@harp{\cau@left\musicnfont\char"7A\cau@right}%
  224. \def\smallds@harp{\cau@left\musicnfont\char"7B\cau@right}%
  225. \def\smalldf@lat{\cau@left\musicnfont\char"79\cau@right}%
  226. \def\cau@left{\ifcautionacc\raise-.45\Interligne
  227.      \hbox{\ttyeight(\kern -\lthick}\fi} 
  228. \def\cau@right{\ifcautionacc\raise-.45\Interligne
  229.      \hbox{\ttyeight\kern -\lthick)\kern -.2\Interligne}\fi\cautionaccfalse} 
  230. %
  231. \def\n@rpl@lap{\global\n@raise=\z@\pl@llap}%
  232. \def\bigsh#1{\inhgetn@i{#1}\n@rpl@lap{\s@harp}}%
  233. \def\smallsh#1{\inhgetn@i{#1}\n@rpl@lap{\smalls@harp}}%
  234. \def\csh{\cautionacctrue\smallsh}%
  235. \def\uppersh#1{\zcharnote{#1}{\raise3\internote
  236. \hbox to \qn@width{\hss\smalls@harp\hss}}}%
  237. %
  238. \def\bigdsh#1{\inhgetn@i{#1}\n@rpl@lap{\ds@harp}}%
  239. \def\smalldsh#1{\inhgetn@i{#1}\n@rpl@lap{\smallds@harp}}%
  240. \def\cdsh{\cautionacctrue\smalldsh}%
  241. %
  242. \def\bigna#1{\inhgetn@i{#1}\n@rpl@lap{\n@at}}%
  243. \def\smallna#1{\inhgetn@i{#1}\n@rpl@lap{\smalln@at}}%
  244. \def\cna{\cautionacctrue\smallna}%
  245. \def\upperna#1{\zcharnote{#1}{\raise3\internote
  246. \hbox to \qn@width{\hss\smalln@at\hss}}}%
  247. %
  248. \def\bigfl#1{\inhgetn@i{#1}\n@rpl@lap{\f@lat}}%
  249. \def\smallfl#1{\inhgetn@i{#1}\n@rpl@lap{\smallf@lat}}%
  250. \def\cfl{\cautionacctrue\smallfl}%
  251. \def\upperfl#1{\zcharnote{#1}{\raise3\internote
  252. \hbox to \qn@width{\hss\smallf@lat\hss}}}%
  253. %
  254. \def\bigdfl#1{\inhgetn@i{#1}\n@rpl@lap{\df@lat}}%
  255. \def\smalldfl#1{\inhgetn@i{#1}\n@rpl@lap{\smalldf@lat}}%
  256. \def\cdfl{\cautionacctrue\smalldfl}
  257. %
  258. \def\na#1{\ifdim\small@test\bigna{#1}\else\smallna{#1}\fi}%
  259. \def\fl#1{\ifdim\small@test\bigfl{#1}\else\smallfl{#1}\fi}%
  260. \def\sh#1{\ifdim\small@test\bigsh{#1}\else\smallsh{#1}\fi}%
  261. \def\dfl#1{\ifdim\small@test\bigdfl{#1}\else\smalldfl{#1}\fi}%
  262. \def\dsh#1{\ifdim\small@test\bigdsh{#1}\else\smalldsh{#1}\fi}%
  263. %
  264. %\check
  265. \def\b@adjust{\ifdim\y@ii>2.1\q@antum
  266. \multiply\q@antum by 2\relax\advance\b@char by 1\relax\fi
  267. }%
  268. \newcount\b@char
  269. \def\b@alkdefs{\b@char=0\relax
  270. \ifnum \b@p>0\relax\b@char=\b@p\relax\multiply\b@char by 6\relax
  271.   \advance\b@char by -6\relax\ifnum\b@char>54\relax\b@char=54\relax\fi\fi
  272. \ifnum \b@p<0\relax\b@char=-\b@p\relax\multiply\b@char by 6\relax
  273.   \advance\b@char by 58\relax\ifnum\b@char>118\relax\b@char=118\relax\fi\fi
  274. \q@antum=60pt\divide\q@antum by 32\relax\b@adjust
  275. \b@adjust
  276. \b@adjust
  277. \b@adjust
  278. \b@adjust
  279. \chardef\b@alk=\b@char}%
  280. %\check
  281. \def\s@lopdefs{\q@antum=60pt\divide\q@antum by 32\relax \def\s@lope{0.0}\relax
  282. \ifnum \b@p=1\relax\def\s@lope{0.05}\fi
  283. \ifnum \b@p>1\relax\b@char=\b@p\relax\multiply\b@char by 5\relax
  284.   \ifnum\b@char>50\relax\b@char=50\relax\fi
  285.   \edef\s@lope{0.\the\b@char}\fi
  286. \ifnum \b@p=-1\relax\def\s@lope{-0.05}\fi
  287. \ifnum \b@p<-1\relax\b@char=-\b@p\relax\multiply\b@char by 5\relax
  288.   \ifnum\b@char>50\relax\b@char=50\relax\fi
  289.   \edef\s@lope{-0.\the\b@char}\fi
  290. }%
  291. %\check
  292. \def\p@outre{%    \y@ii : longueur,   \b@p : pente,  \y@i : altitude
  293. \ifnum \b@p=0\relax
  294.   \y@iii=\y@i\y@iv=\y@i
  295.   \advance\y@iii by -\b@alkthick
  296.   \advance\y@iv by \b@alkthick
  297.   \vrule height \y@iv depth -\y@iii  width \y@ii
  298. %  \raise  \y@i\hbox{\vrule height \b@alkthick depth \b@alkthick
  299. %      width \y@ii}
  300. \else\b@alkdefs\beamfont
  301.   \global\y@iv=\z@
  302.   \loop\ifdim\y@iv<\y@ii
  303.     {\y@v=\y@ii\advance\y@v by -\y@iv
  304.     \advance\y@v by -\q@antum
  305.     \y@iii=\y@i
  306.     \advance\y@iii by \s@lope\y@iv
  307.     \ifdim\y@v<\z@\advance\y@iii by \s@lope\y@v\hskip\y@v\fi
  308.     \raise\y@iii\hbox to \q@antum{\b@alk\hss}\global\advance\y@iv by \q@antum
  309.     }\repeat
  310. \fi
  311. }%
  312. %\check
  313. \def\clefdefasymbol{\hbox to 3.2\Interligne{\musickeyfont
  314.      \kern -0.8\internote\hss\char"49\hss}}%
  315. \def\smallclefdefa{\hbox to 2.8\Interligne{\musickeyfont
  316.      \kern -0.64\internote\hss\char"4A\hss}}%
  317. %\check
  318. \def\clefdesolsymbol{\hbox to 3.2\Interligne{\musickeyfont
  319.      \kern -1.2\internote\hss\char"47\hss}}%
  320. \def\smallclefdesol{\hbox to 2.8\Interligne{\musickeyfont
  321. \kern -0.96\internote\hss\char"48\hss}}%
  322. %\check
  323. \def\clefdutsymbol{\hbox to 3.2\Interligne{\musickeyfont
  324.    \kern -0.8\internote\hss\char"4B\hss}}%
  325. \def\smallclefdut{\hbox to 2.8\Interligne{\musickeyfont
  326.    \kern -0.64\internote\hss\char"4C\hss}}%
  327. \def\gclefdut{\hbox to 3.2\Interligne{\musickeyfont
  328.    \kern 0.4\internote\hss\char"04\hss}}%
  329. \def\drumclefsymbol{\hbox to 3.2\Interligne{\musickeyfont
  330.    \kern 0.4\internote\hss\char"4D\hss}}%
  331. %
  332. \def\allabreve{{\kern \internote\musickeyfont\char"52}}%
  333. \def\meterC{{\kern \internote\musickeyfont\char"53}}%
  334. %
  335. \def\d@soup{\hbox{\kern -0.3\qn@width\musicnfont\char"3F}}%
  336. \def\q@soup{\hbox{\kern -0.3\qn@width\musicnfont\char"40}}%
  337. \def\h@soup{\hbox{\kern -0.3\qn@width\musicnfont\char"41}}%
  338. \def\s@soup{\hbox{\kern -0.3\qn@width\musicnfont\char"42}}%
  339. \def\p@orgue{\hbox{\kern -0.5\hn@width\musicnfont\char"50}}%
  340. \def\p@urgue{\hbox{\kern -0.5\hn@width\musicnfont\char"51}}%
  341. \def\trille#1{\hbox to #1{\leaders\hbox{\musicnfont\char"64}\hfill}}%
  342. \def\Trille#1{\hbox to #1{\it tr\leaders\hbox{\musicnfont\char"64}\hfill}}%
  343. %
  344. % Gregorian notes
  345. %
  346. \def\diamg#1{\getn@i{#1}\def\n@fon{\diamg}\def\n@sym{\d@iamg}\g@diamg}%
  347. \def\zdiamg#1{\getn@i{#1}\def\n@fon{\diamg}\def\n@sym{\d@iamg}\rlap{\g@diamg}}%
  348. \def\diamw#1{\getn@i{#1}\def\n@fon{\diamw}\def\n@sym{\d@iamw}\g@diamg}%
  349. \def\zdiamw#1{\getn@i{#1}\def\n@fon{\diamw}\def\n@sym{\d@iamw}\rlap{\g@diamg}}%
  350. \def\carrg#1{\getn@i{#1}\def\n@fon{\carrg}\def\n@sym{\c@arrg}\g@diamg}%
  351. \def\zcarrg#1{\getn@i{#1}\def\n@fon{\carrg}\def\n@sym{\c@arrg}\rlap{\g@diamg}}%
  352. \def\carqg#1{\getn@i{#1}\def\n@fon{\carqg}\def\n@sym{\c@arqg}\g@diamg}%
  353. \def\zcarqg#1{\getn@i{#1}\def\n@fon{\carqg}\def\n@sym{\c@arqg}\rlap{\g@diamg}}%
  354. \def\carpg#1{\getn@i{#1}\def\n@fon{\carpg}\def\n@sym{\c@arpg}\g@diamg}%
  355. \def\zcarpg#1{\getn@i{#1}\def\n@fon{\carpg}\def\n@sym{\c@arpg}\rlap{\g@diamg}}%
  356. %
  357. \def\g@diamg{\advancetrue\g@diam}%
  358. \def\g@diam{\global\n@raise=\wh@raise\ifnum\n@i<100\relax
  359.   \h@lines{\gr@width}\def\s@tem{\resetstem}\pl@symssq\fi}%
  360.  %\check
  361. %%%%%%%%%%%%%%%%%%%%%%%%% notes with black diamond heads %%%%%%%%%%%%%%%%%%%% 
  362.  
  363.  %\check
  364. \def\yu{\advancetrue\yu@z}%
  365. \def\yup{\advancetrue\yup@z}%
  366. \def\yupp{\advancetrue\yupp@z}%
  367. \def\yuppp{\advancetrue\yuppp@z}%
  368. \def\yu@z#1{\getn@i{#1}\def\n@fon{\yu}\def\n@sym{\d@iamg}\g@qu}%
  369. \def\yup@z#1{\getn@i{#1}\def\n@fon{\yup}\def\n@sym{\d@iamgp}\g@qu}%
  370. \def\yupp@z#1{\getn@i{#1}\def\n@fon{\yupp}\def\n@sym{\d@iamgpp}\g@qu}%
  371. \def\yuppp@z#1{\getn@i{#1}\def\n@fon{\yuppp}\def\n@sym{\d@iamgppp}\g@qu}%
  372. \def\yl{\advancetrue\yl@z}%
  373. \def\ylp{\advancetrue\ylp@z}%
  374. \def\ylpp{\advancetrue\ylpp@z}%
  375. \def\ylppp{\advancetrue\ylppp@z}%
  376. \def\yl@z#1{\getn@i{#1}\def\n@fon{\yl}\def\n@sym{\d@iamg}\g@ql}%
  377. \def\ylp@z#1{\getn@i{#1}\def\n@fon{\ylp}\def\n@sym{\d@iamgp}\g@ql}%
  378. \def\ylpp@z#1{\getn@i{#1}\def\n@fon{\ylpp}\def\n@sym{\d@iamgpp}\g@ql}%
  379. \def\ylppp@z#1{\getn@i{#1}\def\n@fon{\ylppp}\def\n@sym{\d@iamgppp}\g@ql}%
  380.  %\check
  381.  %
  382. \def\d@iamgp{\hbox to \qn@width{\d@iamg\hss}\P@t}%
  383. \def\d@iamgpp{\hbox to \qn@width{\d@iamg\hss}\PP@t}%
  384. \def\d@iamgppp{\hbox to \qn@width{\d@iamg\hss}\PPP@t}%
  385. %
  386. \def\yh#1{\selectpoutre{#1}\yh@}%
  387. \def\yb#1{\selectpoutre{#1}\yb@}%
  388. \def\yh@#1{\getn@i{#1}\def\n@fon{\yh@}\def\n@sym{\d@iamg}\g@qh@}% % position
  389. \def\yb@#1{\getn@i{#1}\def\n@fon{\yb@}\def\n@sym{\d@iamg}\g@qb@} % #1 position
  390. %
  391. % x heads without stems
  392. \def\zy#1{\getn@i{#1}\def\n@fon{\zy}\def\n@sym{\d@iamg}\g@zq}
  393. \def\zyp#1{\getn@i{#1}\def\n@fon{\zyp}\def\n@sym{\d@iamgp}\g@zq}
  394. \def\zypp#1{\getn@i{#1}\def\n@fon{\zypp}\def\n@sym{\d@iamgpp}\g@zq}
  395. \def\zyppp#1{\getn@i{#1}\def\n@fon{\zyppp}\def\n@sym{\d@iamgppp}\g@zq}
  396.  %
  397.  % croches, doubles croches, triples croches, quadruple croches queue en
  398.  % haut et en bas pour percussion x
  399.  %
  400. \def\ycu{\advancetrue\mycu1}\def\yccu{\advancetrue\mycu2}
  401. \def\ycccu{\advancetrue\mycu3}\def\yccccu{\advancetrue\mycu4}%
  402. \def\ycl{\advancetrue\mycl1}\def\yccl{\advancetrue\mycl2}
  403. \def\ycccl{\advancetrue\mycl3}\def\yccccl{\advancetrue\mycl4}%
  404. %
  405. \def\yclp{\advancetrue\myclp1}\def\ycup{\advancetrue\mycup1}%
  406. \def\yclpp{\advancetrue\myclpp1}\def\ycupp{\advancetrue\mycupp1}%
  407. \def\yclppp{\advancetrue\myclppp1}\def\ycuppp{\advancetrue\mycuppp1}%
  408.  %
  409. \def\mycu#1#2{\getn@i{#2}\def\n@sym{\d@iamg}%
  410. \edef\n@fon{\noexpand\mycu #1}\g@cu{#1}}
  411. \def\mycup#1#2{\getn@i{#2}\def\n@sym{\d@iamgp}%
  412. \edef\n@fon{\noexpand\mycup #1}\g@cu{#1}}
  413. \def\mycupp#1#2{\getn@i{#2}\def\n@sym{\d@iamgpp}%
  414. \edef\n@fon{\noexpand\mycupp #1}\g@cu{#1}}
  415. \def\mycuppp#1#2{\getn@i{#2}\def\n@sym{\d@iamgppp}%
  416. \edef\n@fon{\noexpand\mycupp #1}\g@cu{#1}}
  417.  %
  418. \def\mycl#1#2{\getn@i{#2}\def\n@sym{\d@iamg}%
  419. \edef\n@fon{\noexpand\mycl #1}\g@cl{#1}}
  420. \def\myclp#1#2{\getn@i{#2}\def\n@sym{\d@iamgp}%
  421. \edef\n@fon{\noexpand\myclp #1}\g@cl{#1}}
  422. \def\myclpp#1#2{\getn@i{#2}\def\n@sym{\d@iamgpp}%
  423. \edef\n@fon{\noexpand\myclpp #1}\g@cl{#1}}
  424. \def\myclppp#1#2{\getn@i{#2}\def\n@sym{\d@iamgppp}%
  425. \edef\n@fon{\noexpand\myclppp #1}\g@cl{#1}}
  426.  
  427. %%%%%%%%%%%%%%%%%%%%%%%%% notes with white diamond heads %%%%%%%%%%%%%%%%%%%% 
  428.  
  429.  %\check
  430. \def\du{\advancetrue\du@z}%
  431. \def\dup{\advancetrue\dup@z}%
  432. \def\dupp{\advancetrue\dupp@z}%
  433. \def\duppp{\advancetrue\duppp@z}%
  434. \def\du@z#1{\getn@i{#1}\def\n@fon{\du}\def\n@sym{\d@iamw}\g@qu}%
  435. \def\dup@z#1{\getn@i{#1}\def\n@fon{\dup}\def\n@sym{\d@iamwp}\g@qu}%
  436. \def\dupp@z#1{\getn@i{#1}\def\n@fon{\dupp}\def\n@sym{\d@iamwpp}\g@qu}%
  437. \def\duppp@z#1{\getn@i{#1}\def\n@fon{\duppp}\def\n@sym{\d@iamwppp}\g@qu}%
  438. \def\dl{\advancetrue\dl@z}%
  439. \def\dlp{\advancetrue\dlp@z}%
  440. \def\dlpp{\advancetrue\dlpp@z}%
  441. \def\dlppp{\advancetrue\dlppp@z}%
  442. \def\dl@z#1{\getn@i{#1}\def\n@fon{\dl}\def\n@sym{\d@iamw}\g@ql}%
  443. \def\dlp@z#1{\getn@i{#1}\def\n@fon{\dlp}\def\n@sym{\d@iamwp}\g@ql}%
  444. \def\dlpp@z#1{\getn@i{#1}\def\n@fon{\dlpp}\def\n@sym{\d@iamwpp}\g@ql}%
  445. \def\dlppp@z#1{\getn@i{#1}\def\n@fon{\dlppp}\def\n@sym{\d@iamwppp}\g@ql}%
  446.  %\check
  447.  %
  448. \def\d@iamwp{\hbox to \qn@width{\d@iamw\hss}\P@t}%
  449. \def\d@iamwpp{\hbox to \qn@width{\d@iamw\hss}\PP@t}%
  450. \def\d@iamwppp{\hbox to \qn@width{\d@iamw\hss}\PPP@t}%
  451. %
  452. \def\dh#1{\selectpoutre{#1}\dh@}%
  453. \def\db#1{\selectpoutre{#1}\db@}%
  454. \def\dh@#1{\getn@i{#1}\def\n@fon{\dh@}\def\n@sym{\d@iamw}\g@qh@}% % position
  455. \def\db@#1{\getn@i{#1}\def\n@fon{\db@}\def\n@sym{\d@iamw}\g@qb@} % #1 position
  456. %
  457. % x heads without stems
  458. \def\zd#1{\getn@i{#1}\def\n@fon{\zd}\def\n@sym{\d@iamw}\g@zq}
  459. \def\zdp#1{\getn@i{#1}\def\n@fon{\zdp}\def\n@sym{\d@iamwp}\g@zq}
  460. \def\zdpp#1{\getn@i{#1}\def\n@fon{\zdpp}\def\n@sym{\d@iamwpp}\g@zq}
  461. \def\zdppp#1{\getn@i{#1}\def\n@fon{\zdppp}\def\n@sym{\d@iamwppp}\g@zq}
  462.  %
  463.  % croches, doubles croches, triples croches, quadruple croches queue en
  464.  % haut et en bas pour percussion x
  465.  %
  466. \def\dcu{\advancetrue\mdcu1}\def\dccu{\advancetrue\mdcu2}
  467. \def\dcccu{\advancetrue\mdcu3}\def\dccccu{\advancetrue\mdcu4}%
  468. \def\dcl{\advancetrue\mdcl1}\def\dccl{\advancetrue\mdcl2}
  469. \def\dcccl{\advancetrue\mdcl3}\def\dccccl{\advancetrue\mdcl4}%
  470. %
  471. \def\dclp{\advancetrue\mdclp1}\def\dcup{\advancetrue\mdcup1}%
  472. \def\dclpp{\advancetrue\mdclpp1}\def\dcupp{\advancetrue\mdcupp1}%
  473. \def\dclppp{\advancetrue\mdclppp1}\def\dcuppp{\advancetrue\mdcuppp1}%
  474.  %
  475. \def\mdcu#1#2{\getn@i{#2}\def\n@sym{\d@iamw}%
  476. \edef\n@fon{\noexpand\mdcu #1}\g@cu{#1}}
  477. \def\mdcup#1#2{\getn@i{#2}\def\n@sym{\d@iamwp}%
  478. \edef\n@fon{\noexpand\mdcup #1}\g@cu{#1}}
  479. \def\mdcupp#1#2{\getn@i{#2}\def\n@sym{\d@iamwpp}%
  480. \edef\n@fon{\noexpand\mdcupp #1}\g@cu{#1}}
  481. \def\mdcuppp#1#2{\getn@i{#2}\def\n@sym{\d@iamwppp}%
  482. \edef\n@fon{\noexpand\mdcupp #1}\g@cu{#1}}
  483.  %
  484. \def\mdcl#1#2{\getn@i{#2}\def\n@sym{\d@iamw}%
  485. \edef\n@fon{\noexpand\mdcl #1}\g@cl{#1}}
  486. \def\mdclp#1#2{\getn@i{#2}\def\n@sym{\d@iamwp}%
  487. \edef\n@fon{\noexpand\mdclp #1}\g@cl{#1}}
  488. \def\mdclpp#1#2{\getn@i{#2}\def\n@sym{\d@iamwpp}%
  489. \edef\n@fon{\noexpand\mdclpp #1}\g@cl{#1}}
  490. \def\mdclppp#1#2{\getn@i{#2}\def\n@sym{\d@iamwppp}%
  491. \edef\n@fon{\noexpand\mdclppp #1}\g@cl{#1}}
  492.  
  493. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  494. % arpeges
  495. %
  496. \def\arpegesym#1{\hbox to \Interligne{\kern -1.2\Interligne
  497. \vbox to #1{\parindent=\z@
  498. \offinterlineskip\ifdim #1>4\Interligne\Arp@elem\fi\hrule
  499. \cleaders\arp@elem\vfill\kern -\interligne}\hss}}%
  500. \def\arp@elem{\vbox to \Interligne{\vss\musicnorfont\char"5A}}%
  501. \def\Arp@elem{\vbox to 4\Interligne{\vss\musicnorfont\char"5D}}%
  502. %
  503. \def\arpeggio#1#2{\zcharnote{#1}{\n@iii=#2\relax\advance\n@iii by 89\relax
  504. \musicnorfont\chardef\arp@el=\n@iii\relax\arp@el}\qsk}%
  505. \def\larpeggio#1#2{\lcharnote{#1}{\n@iii=#2\relax\advance\n@iii by 89\relax
  506. \musicnorfont\chardef\arp@el=\n@iii\relax\arp@el\kern -0.3\qn@width}\qsk}%
  507. %
  508. %
  509. % This skip aligns some ornaments which appear not to be centred precisely
  510. % on the notes
  511. \def\o@skp{\kern-.5\hd@skip}
  512. \def\mordant#1{\zcharnote{#1}{\musicnfont\char 89}}%
  513. \def\pince#1{\zcharnote{#1}{\musicnfont\char 87}}%
  514. \def\Pince#1{\zcharnote{#1}{\musicnfont\char 88}}%
  515. \def\Lpince#1{\zcharnote{#1}{\musicnfont\char 7}}%
  516. \def\Pincesw#1{\zcharnote{#1}{\musicnfont\char 11}}%
  517. \def\Pincenw#1{\zcharnote{#1}{\musicnfont\char 10}}%
  518. \def\Pincene#1{\zcharnote{#1}{\musicnfont\char 9}}%
  519. % \turn p      makes a turn             symbol at pitch p, causing no space
  520. % \backturn p  makes a backward turn    symbol at pitch p, causing no space
  521. % \coda p      makes a coda             ...
  522. % \segno p     makes the special "S"    ...
  523. \def\turn#1{\zcharnote{#1}{\o@skp\musicnfont\char"44}}
  524. \def\backturn#1{\zcharnote{#1}{\o@skp\musicnfont\char"43}}
  525. \def\coda#1{\zcharnote{#1}{\o@skp\musicnorfont\char"55}}
  526. \def\segno#1{\zcharnote{#1}{\o@skp\musicnorfont\char"56}}
  527. %
  528. \def\sforz#1{{\advance\transpose by -2\usf{#1}}}%
  529. \def\pz#1{{\advance\transpose by -2\upz{#1}}}%
  530. \def\ppz#1{\uppz{#1}}%
  531. \def\st#1{{\advance\transpose by -2\ust{#1}}}%
  532. %
  533. \def\usf#1{\zcharnote{#1}{\musicnfont\char 30}}%
  534. \def\lsf#1{\zcharnote{#1}{\musicnfont\char 31}}%
  535. \def\ust#1{\zcharnote{#1}{\musicnfont\char 26}}%
  536. \def\lst#1{\zcharnote{#1}{\musicnfont\char 27}}%
  537. \def\upz#1{\zcharnote{#1}{\musicnfont\char 24}}%
  538. \def\lpz#1{\zcharnote{#1}{\musicnfont\char 25}}%
  539. \def\uppz#1{\zcharnote{#1}{\musicnfont\char 28}}%
  540. \def\lppz#1{\zcharnote{#1}{\musicnfont\char 29}}%
  541. %
  542. % placement des accents au-dessus de poutres et non de tetes de notes
  543. \def\acc@balk{\global\stem@skip=\z@  %
  544. \y@ii=\b@z                     % a augmenter avec la pente
  545. \y@v=\locx@skip\advance\y@v by \stem@skip\advance\y@v by -\b@x
  546. \advance\y@ii by \s@lope\y@v
  547. \advance\y@ii by -\altportee
  548. \raise\y@ii\rlap{\kern\stem@skip\balk@accent}}%
  549. %\check
  550. \def\busf#1{\def\balk@accent{\musicnfont\char 30}\selectpoutre{#1}\acc@balk}%
  551. \def\blsf#1{\def\balk@accent{\musicnfont\char 31}\selectpoutre{#1}\acc@balk}%
  552. \def\bust#1{\def\balk@accent{\musicnfont\char 26}\selectpoutre{#1}\acc@balk}%
  553. \def\blst#1{\def\balk@accent{\musicnfont\char 27}\selectpoutre{#1}\acc@balk}%
  554. \def\bupz#1{\def\balk@accent{\musicnfont\char 24}\selectpoutre{#1}\acc@balk}%
  555. \def\blpz#1{\def\balk@accent{\musicnfont\char 25}\selectpoutre{#1}\acc@balk}%
  556. \def\buppz#1{\def\balk@accent{\musicnfont\char 28}\selectpoutre{#1}\acc@balk}%
  557. \def\blppz#1{\def\balk@accent{\musicnfont\char 29}\selectpoutre{#1}\acc@balk}%
  558. %
  559. % soufflets crescendo et decrescendo
  560. %
  561. \def\dimin{{\musicnorfont\char"10}}%
  562. \def\Dimin{{\musicnorfont\char"11}}%
  563. \def\DImin{{\musicnorfont\char"12}}%
  564. \def\DIMin{{\musicnorfont\char"13}}%
  565. \def\cresc{{\musicnorfont\char"14}}%
  566. \def\Cresc{{\musicnorfont\char"15}}%
  567. \def\CResc{{\musicnorfont\char"16}}%
  568. \def\CREsc{{\musicnorfont\char"17}}%
  569. %
  570. % colons for repeats (:| |: :||:)
  571. %
  572. %\check
  573. \def\w@coli{\selectinstr{\p@loop\raise\altportee
  574.   \hbox to \z@{\hss\musickeyfont\char 126\hss}\n@portee\repeat}}%
  575. %
  576. % long pauses
  577. %
  578. \def\PAuse{\hbox to \noteskip{\musicnorfont\char"3A\hss}\advance\locx@skip
  579.  by \noteskip}%
  580. \def\PAUSe{\hbox to \noteskip{\musicnorfont\char"3B\hss}\advance\locx@skip
  581.  by \noteskip}%
  582. \def\expause#1{\charnote{#1}{\musicnorfont\char 5\hss}} 
  583. \def\zexpause#1{\zcharnote{#1}{\musicnorfont\char 5\hss}} 
  584. \def\exhpause#1{\charnote{#1}{\musicnorfont\char 6\hss}} 
  585. \def\zexhpause#1{\zcharnote{#1}{\musicnorfont\char 6\hss}} 
  586. %
  587. % special song system left begins
  588. %
  589. \def\type@songsymbols{\raise\lowersongalt\llap{\musicnorfont\char 15}%
  590. \advance\lowersongalt by \uppersongalt
  591. \advance\lowersongalt by -\hlthick
  592. \raise\lowersongalt\llap{\musicnorfont\char 14}}
  593. %
  594. %
  595. % horizontal upper slur offset by #2 noteheads, total width #1
  596. %
  597. \def\h@uslur#1#2{\y@v=#1\relax\advance\y@v by -#2\hn@width
  598. \global\setbox\ch@box=\hbox{\slurnorfont\char31}% maximum of one part slurs
  599. \ifdim\wd\ch@box>\y@v
  600.   \global\n@iii=0\relax
  601.   \loop\global\setbox\ch@box=\hbox{\slurnorfont\char\n@iii}%
  602.   \ifdim\wd\ch@box<\y@v\global\advance\n@iii by 1\relax
  603.   \repeat
  604.   \hbox to #1{\kern #2\hn@width\hss\slurnorfont\char\n@iii\hss}%
  605. \else
  606.   \global\n@iii=79\relax
  607.   \loop\global\setbox\ch@box=\hbox{\slurnorfont\char\n@iii}%
  608.   \ifdim 2\wd\ch@box>\y@v\global\advance\n@iii by -1\relax
  609.   \repeat
  610.   \hbox to #1{\kern #2\hn@width\y@iv=\ht\ch@box\y@iii=-\ht\ch@box
  611.   \advance\y@iii by \t@y
  612.   \slurnorfont\char\n@iii
  613.   \leaders\hrule height \y@iv depth \y@iii\hfill
  614.   \advance\n@iii by 16\relax \char\n@iii}%
  615. \fi}
  616. %
  617. % horizontal lower slur offset by #2 noteheads, total width #1
  618. %
  619. \def\h@dslur#1#2{\y@v=#1\relax\advance\y@v by -#2\hn@width
  620. \global\setbox\ch@box=\hbox{\slurnorfont\char31}% maximum of one part slurs
  621. \ifdim\wd\ch@box>\y@v
  622.   \global\n@iii=32\relax
  623.   \loop\global\setbox\ch@box=\hbox{\slurnorfont\char\n@iii}%
  624.   \ifdim\wd\ch@box<\y@v\global\advance\n@iii by 1\relax
  625.   \repeat
  626.   \hbox to #1{\kern #2\hn@width\hss\slurnorfont\char\n@iii\hss}%
  627. \else
  628.   \global\n@iii=111\relax
  629.   \loop\global\setbox\ch@box=\hbox{\slurnorfont\char\n@iii}%
  630.   \ifdim 2\wd\ch@box>\y@v\global\advance\n@iii by -1\relax
  631.   \repeat
  632.   \hbox to #1{\kern #2\hn@width\y@iv=\dp\ch@box\y@iii=-\dp\ch@box
  633.   \advance\y@iii by \t@y
  634.   \slurnorfont\char\n@iii
  635.   \leaders\hrule height \y@iii depth \y@iv\hfill
  636.   \advance\n@iii by 16\relax \char\n@iii}%
  637. \fi}
  638. %
  639. % sames without offsets
  640. %
  641. \def\hdslur#1{\h@dslur {#1}0}
  642. \def\huslur#1{\h@uslur {#1}0}
  643. %
  644. % noter un debut de tenue
  645. %
  646. \def\ITenu#1{\selecttenue{#1}\I@tenu{70}}%
  647. \def\Ilegu#1#2{\selecttenue{#1}{\advance\locx@skip by -1.5\qn@width
  648. \I@tenu{70}{#2}}}%
  649. \def\Itenu#1{\selecttenue{#1}\I@tenu{66}}%
  650. \def\ilegu#1#2{\selecttenue{#1}{\advance\locx@skip by -1.5\qn@width
  651. \I@tenu{66}{#2}}}%
  652. \def\ITenl#1{\selecttenue{#1}\I@tenl{102}}%
  653. \def\Ilegl#1#2{\selecttenue{#1}\advance\locx@skip by -1.5\qn@width
  654. \I@tenl{102}{#2}\advance\locx@skip by 1.5\qn@width}%
  655. \def\Itenl#1{\selecttenue{#1}\I@tenl{98}}%
  656. \def\ilegl#1#2{\selecttenue{#1}{\advance\locx@skip by -1.5\qn@width
  657. \I@tenl{98}{#2}}}%
  658. %
  659. \def\I@tenall{\check@tenvoid\global\t@s=1\relax % etat en cours
  660.   \global\t@x=\locx@skip
  661.   \global\advance\t@x by 0.8\qd@skip
  662.   \global\t@y= 0.15\Interligne
  663.   \pl@base\global\t@z=\y@i\global\advance\t@z by\altportee
  664.   \setbox\ch@box=\hbox{\L@slur}}%
  665. %
  666. \def\I@tenu#1#2{\global\t@p=1\relax % sens=1
  667.   \global\t@w=#1\relax
  668.   \inhgetn@i{#2}%
  669.   \I@tenall
  670.   \global\advance\t@z by \ht\ch@box
  671.   \global\advance\t@z by 0.24\Interligne
  672.   \global\advance\t@z by -\t@y
  673.   \up@tenbox}%
  674. %
  675. \def\I@tenl#1#2{\global\t@p=-1\relax % sens= -1
  676.   \global\t@w=#1\relax
  677.   \inhgetn@i{#2}%
  678.   \I@tenall
  679.   \global\advance\t@z by -\dp\ch@box
  680.   \global\advance\t@z by -0.24\Interligne
  681.   \up@tenbox}%
  682.  
  683. \def\Invertslur#1{\selecttenue{#1}\global\t@p=-\t@p
  684. \ifnum\t@w>63\relax
  685.  \ifnum\t@w<96\global\advance\t@w by 32\relax
  686.  \else\global\advance\t@w by -32\fi
  687. \fi}
  688.  
  689.  
  690. %
  691. %\check
  692. %
  693. \def\Tten{\tten}%
  694. \def\Tleg#1{\rlap{\qsk\tleg#1}}%
  695. %  
  696. \def\t@ten{\check@tenopen\y@i=\t@z\advance\y@i by -\altportee
  697. \y@ii=\locx@skip\advance\y@ii by -\t@x
  698. \ifnum\t@w=0\relax\else\advance\y@ii by 0.4\qd@skip\fi
  699. \ifnum\t@p>0\relax
  700.   \ifnum\t@s=2\relax
  701.     \raise\y@i\llap{\ifnum\t@w=0\relax
  702.                       \up@rleg\else
  703.                       \Up@rleg\kern -0.2\qd@skip\fi}%
  704.   \else
  705.     \raise\y@i\llap{\ifnum\t@w=0\relax
  706.                       \up@leg\else
  707.                       \Up@leg\kern -0.2\qd@skip\fi}%
  708.   \fi
  709. \else
  710.   \ifnum\t@s=2\relax
  711.     \raise\y@i\llap{\ifnum\t@w=0\relax
  712.                       \lo@rleg\else
  713.                       \Lo@rleg\kern -0.2\qd@skip\fi}%
  714.   \else
  715.     \raise\y@i\llap{\ifnum\t@w=0\relax
  716.                       \lo@leg\else
  717.                       \Lo@leg\kern -0.2\qd@skip\fi}%
  718.   \fi
  719. \fi
  720. \global\t@w=0\relax
  721. \global\t@s=0\relax
  722. \@uptenubox}%
  723. %
  724. %
  725. \def\L@slur{\slurnorfont\char\t@w}%
  726. \def\R@slur{\global\advance\t@w by 16\slurnorfont\char\t@w}%
  727. \newdimen\slur@off
  728. \newdimen\slur@maxlen
  729. %
  730. \def\leg@hrule{\leaders\hrule height \t@y\hfill}%
  731. %
  732. % complete slur of length #1 (up and down)
  733. \def\Up@leg{%    longueur \y@ii
  734. \hbox to \y@ii{\setbox\ch@box=\hbox{\L@slur}\slur@off=\ht\ch@box 
  735.   \advance\slur@off by -\t@y
  736.   \ifdim \y@ii>2\wd\ch@box
  737.     \raise -\slur@off\hbox{\L@slur}\leg@hrule\raise -\slur@off\hbox{\R@slur}%
  738.   \else
  739.     \raise -\slur@off\hbox{\huslur{\y@ii}}%
  740.   \fi}}%
  741. %
  742. \def\Lo@leg{%    longueur \y@ii
  743. \hbox to \y@ii{\setbox\ch@box=\hbox{\L@slur}\slur@off=-\dp\ch@box 
  744.   \advance\slur@off by -0.3\t@y
  745.   \ifdim \y@ii>2\wd\ch@box
  746.     \raise -\slur@off\hbox{\L@slur}\leg@hrule\raise -\slur@off\hbox{\R@slur}%
  747.   \else
  748.     \raise -\slur@off\hbox{\hdslur{\y@ii}}%
  749.   \fi}}%
  750. %
  751. % slur termination of length #1 (up and down)
  752. \def\Up@rleg{%    longueur \y@ii
  753. \hbox to \y@ii{\setbox\ch@box=\hbox{\L@slur}\slur@off=\ht\ch@box %
  754.   \advance\slur@off by -\t@y
  755.   \ifdim \y@ii>\wd\ch@box\leg@hrule
  756.   \else\hss\fi  \raise -\slur@off\hbox{\R@slur}}}%
  757. %
  758. \def\Lo@rleg{%    longueur \y@ii
  759. \hbox to \y@ii{\setbox\ch@box=\hbox{\L@slur}\slur@off=-\dp\ch@box %   
  760.   \advance\slur@off by -0.3\t@y
  761.   \ifdim \y@ii>\wd\ch@box\leg@hrule
  762.   \else\hss\fi  \raise -\slur@off\hbox{\R@slur}}}%
  763. %
  764. %\check
  765. %
  766. % slur beginning (left) (up and down)
  767. \def\Up@les{%    longueur \y@ii
  768. \hbox to \y@ii{\setbox\ch@box=\hbox{\L@slur}\slur@off=\ht\ch@box
  769.   \advance\slur@off by -\t@y
  770.   \UpLo@les}}%
  771. %
  772. %\check
  773. %
  774. \def\Lo@les{%    longueur \y@ii
  775. \hbox to \y@ii{\setbox\ch@box=\hbox{\L@slur}\slur@off=-\dp\ch@box
  776.   \advance\slur@off by -0.3\t@y
  777.   \UpLo@les}}%
  778. %
  779. %\check
  780. %
  781. \def\UpLo@les{\raise -\slur@off\hbox{\L@slur}%
  782.   \advance\y@ii by -\wd\ch@box
  783.   \ifdim \y@ii>\z@\leg@hrule
  784.   \else\hss
  785. %    \ifdim\y@ii<-.8\p@ \vrule height 1cm\fi
  786.   \fi}%
  787. %\check
  788. %
  789. \def\c@ten{%\rlap{\vrule height 1cm}
  790.      \y@ii=\x@skip\advance\y@ii by -\t@x
  791.      \global\t@x=-.8\p@  %<--
  792.      \ifnum\t@s=1\relax
  793.        \ifnum\t@w=0\relax
  794.            \ifnum\t@p>0\relax
  795.            \raise\t@z\llap{\up@les}\else
  796.            \raise\t@z\llap{\lo@les}\fi
  797.        \else
  798.            \ifnum\t@p>0\relax
  799.            \raise\t@z\llap{\Up@les}\else
  800.            \raise\t@z\llap{\Lo@les}\fi
  801.        \fi    
  802.      \else
  803.        \ifnum\t@s=2\relax
  804.          \slur@off=\t@z
  805.          \advance\slur@off by \t@y
  806. %         \advance\slur@off by 3\p@
  807.          \kern -\y@ii\vrule height \slur@off depth -\t@z width \y@ii
  808.        \fi
  809.      \fi
  810.      \global\t@s=2\relax            
  811. }%
  812. %
  813. \def\n@skmb{\nobreak\global\slur@maxlen=\z@
  814. % compute the maximum length of slurs to be handled
  815.   \ten@loop
  816.      \setbox\ch@box=\hbox{\ifnum\t@w=0\relax\lu@slur
  817.                            \else\L@slur\fi}\ifdim\slur@maxlen<\wd\ch@box
  818.      \global\slur@maxlen=\wd\ch@box\fi
  819.      \global\advance\n@l by 1\relax
  820.   \repeat
  821. % compute the maximum excess length of beginning slurs  
  822.   \global\slur@off=\z@
  823.   \ten@loop
  824.      \y@ii=\x@skip\advance\y@ii by \n@skip\advance\y@ii by -\t@x
  825.      \advance\y@ii by -\slur@maxlen
  826.      % \y@ii is the length that will be given to \c@ten for that slur/tie
  827.      % assuming \slur@maxlen left offset...
  828.      \ifnum\t@s=1\relax
  829.        \setbox\ch@box=\hbox{\ifnum\t@w=0\relax\lu@slur\else\L@slur\fi}%
  830.            {\advance\y@ii by -\wd\ch@box
  831.             \ifdim\y@ii<\slur@off \global\slur@off=\y@ii\fi}%
  832.      \fi
  833.      \global\advance\n@l by 1\relax
  834.   \repeat
  835.   \global\advance\slur@maxlen by \slur@off
  836. %
  837.   \nobreak\global\advance\n@skip by -\slur@maxlen}%
  838. \def\skip@b{\hskip \slur@maxlen
  839.    \global\advance\x@skip by\slur@maxlen}% %
  840.  
  841.  %
  842. %
  843. %\check
  844. %
  845. % symboles slurn20 des liaisons et tenues
  846. %
  847. \newcount\t@wi
  848. \newcount\t@wii
  849. \newcount\t@wiii
  850. \newcount\t@wiv
  851. \newcount\t@wv
  852. \newcount\t@wvi
  853. %
  854. \let\wlog=\@plainwlog
  855. %
  856. \def\k@ii{\fontdimen 8\musictwenty}
  857. \def\k@iii{\fontdimen 9\musictwenty}
  858. \def\k@iiii{\fontdimen 10\musictwenty}
  859. \def\k@iiv{\fontdimen 11\musictwenty}
  860. \def\k@iv{\fontdimen 12\musictwenty}
  861. \def\k@ivi{\fontdimen 13\musictwenty}
  862. \def\k@ivii{\fontdimen 14\musictwenty}
  863. \def\k@iviii{\fontdimen 15\musictwenty}
  864. \def\k@iix{\fontdimen 16\musictwenty}
  865. %
  866. \def\internotei{\fontdimen 17\musictwenty}
  867. \def\internoteii{\fontdimen 18\musictwenty}
  868. \def\internoteiii{\fontdimen 19\musictwenty}
  869. \def\internoteiv{\fontdimen 20\musictwenty}
  870. \def\internotev{\fontdimen 21\musictwenty}
  871. \def\internotevi{\fontdimen 22\musictwenty}
  872. \def\internotevii{\fontdimen 23\musictwenty}
  873. \def\internoteviii{\fontdimen 24\musictwenty}
  874. \def\internoteix{\fontdimen 25\musictwenty}
  875. \def\c@height{\fontdimen 26\musictwenty}
  876. %
  877. \def\qn@width{\fontdimen 27\musictwenty}
  878. \def\hn@width{\fontdimen 28\musictwenty}
  879. \def\wn@width{\fontdimen 29\musictwenty}
  880. \def\sb@width{\fontdimen 30\musictwenty}
  881. \def\bv@width{\fontdimen 31\musictwenty}
  882. \def\gr@width{\fontdimen 32\musictwenty}
  883. %
  884. \def\clef@skip{\fontdimen 28\beamtwenty}
  885. \def\nullthick{\fontdimen 29\beamtwenty}
  886. \def\bbbb@xi{\fontdimen 30\beamtwenty}
  887. \def\bbbb@xii{\fontdimen 31\beamtwenty}
  888. \def\bbbb@xiii{\fontdimen 32\beamtwenty}
  889. \def\bbbb@xiv{\fontdimen 33\beamtwenty}
  890. \def\bbbb@xv{\fontdimen 34\beamtwenty}
  891. \def\bbbb@xvi{\fontdimen 35\beamtwenty}
  892. \def\bbbb@xvii{\fontdimen 36\beamtwenty}
  893. \def\bbbb@xviii{\fontdimen 37\beamtwenty}
  894. \def\bbbb@xix{\fontdimen 38\beamtwenty}
  895. \def\bbbb@xx{\fontdimen 39\beamtwenty}
  896. %
  897. \def\bbbbb@xi{\fontdimen 40\beamtwenty}
  898. \def\bbbbb@xii{\fontdimen 41\beamtwenty}
  899. \def\bbbbb@xiii{\fontdimen 42\beamtwenty}
  900. \def\bbbbb@xiv{\fontdimen 43\beamtwenty}
  901. \def\bbbbb@xv{\fontdimen 44\beamtwenty}
  902. \def\bbbbb@xvi{\fontdimen 45\beamtwenty}
  903. \def\bbbbb@xvii{\fontdimen 46\beamtwenty}
  904. \def\bbbbb@xviii{\fontdimen 47\beamtwenty}
  905. \def\bbbbb@xix{\fontdimen 48\beamtwenty}
  906. \def\bbbbb@xx{\fontdimen 49\beamtwenty}
  907.  
  908. % this macro sets the new big (piano) braces (due to Andreas Egler)
  909. %  !!! Attention !!!
  910. % there is no checking of 
  911. % too small or large dimensions
  912. %
  913. \font\musext=musicbra
  914. \newcount\selbrace
  915. \def\mult@portee{\y@ii=\nbportees\interportee
  916.     \advance\y@ii by -\Interportee
  917.     \advance\y@ii by \nbportees\lthick
  918.     \advance\y@ii by -2\lthick
  919. %    
  920.     \selbrace=\y@ii\relax\select@brace%
  921.     \divide\y@ii by 2\raise\y@\llap{%
  922.     \raise\y@ii\llap{\musext\char\selbrace%
  923.     \kern.5\Interligne}}}%
  924. %
  925. \def\select@brace{\divide\selbrace by 65536%
  926. \advance\selbrace by -40\divide\selbrace by 2}%
  927. % dim to count means 1pt -> 65536 sp
  928. % 40 pt is the length of the smallest brace
  929. % the next brace is 2pt larger
  930.  
  931.  
  932. \catcode`\>=\catcode@gt
  933. \catcode`\<=\catcode@lt
  934. \catcode`\@=\catcodeat
  935.  
  936.